// CherryMerry ( Mikhail Tomilenko ), Reverse Entertainment, 2021-2024

#pragma once

#include "CoreMinimal.h"
#include "Engine/GameInstance.h"

#include <NifestGame/Interfaces/Public/I_Core.h>

#include "NF_GameInstance.generated.h"

/**
 * 
 */
UENUM(BlueprintType)
enum class EStartGameType : uint8 {
	SGTE_NewGame UMETA(DisplayName = "StartGame"),
	SGTE_LoadGame UMETA(DisplayName = "LoadGame"),
};

UCLASS()
class NIFESTGAME_API UNF_GameInstance : public UGameInstance, public II_Core
{
	GENERATED_BODY()

protected:
	
	UPROPERTY(BlueprintReadOnly)
	EStartGameType InitType;

	UFUNCTION(BlueprintCallable)
	void CreateNewGame();

	UFUNCTION(BlueprintCallable)
	void LoadGame();

	void LevelOpened_Implementation() override;
	void LevelLoaded_Implementation() override;


public:
	virtual void StartGame(EStartGameType SelectedInitType);
};
